package dao

import (
	"errors"
	"oidc/model"
	"time"
)

var CodeMap map[string]model.UserAuth //code-UserAuth

func init() {
	CodeMap = make(map[string]model.UserAuth)
}

func StoreCodeDB(auth model.UserAuth) { //每一个管道储存一个code
	CodeMap[auth.Code] = auth
}

func IfCodeExist(code string) bool { //判断code是否存在
	if _, ok := CodeMap[code]; ok {
		return true
	}
	return false
}

func QueryUserAuth(code string) (auth model.UserAuth, err error) {
	if IfCodeExist(code) == false {
		return auth, errors.New("CODE IS NOT EXIST")
	}
	return CodeMap[code], nil
}

func WaitCodeDel(code string) { //到时间删除code，开一个协程使用
	time.Sleep(10 * time.Minute)
	if val, ok := CodeMap[code]; ok {
		DelCode(val)
	}
}

func DelCode(auth model.UserAuth) { //删除，使用前保证存在
	delete(CodeMap, auth.Code)
}
